今天閱讀「適用於 Android 開發人員的 Jetpack Compose」第一章「Compose 基礎知識」的「編寫第一個 Compose 應用程式」,今天工作忙,看 1~7 小章就好
Surface
可以讓文字有背景色,把顏色指定使用MaterialTheme.colorScheme.primary
會讓 Material Design 自動調整文字顏色
Surface(color = MaterialTheme.colorScheme.primary) {
Text(
text = "Hello $name!",
modifier = modifier
)
}
modifier
Modifier.padding()
增加間距
Surface(color = MaterialTheme.colorScheme.primary) {
Text(
text = "Hello $name!",
modifier = Modifier.padding(24.dp)
)
}
Column
是直向排列,寫起來像這樣
Surface(color = MaterialTheme.colorScheme.primary) {
Column(modifier = Modifier.padding(24.dp)){
Text(text = "Hello $name!",)
Text(text = name,)
}
}
@Composable
private fun MyApp(modifier: Modifier = Modifier, names: List<String> = listOf("Hello", "World")) {
Surface(
modifier = modifier,
color = MaterialTheme.colorScheme.background
) {
Column(modifier) {
for (name in names) {
Greeting(name = name)
}
}
}
}
@Preview
預設是最小畫面,可以增加widthDp
和heightDp
來模擬手機畫面大小
@Preview(showBackground = true, widthDp = 320, heightDp = 640)
Modifier.fillMaxWidth().padding(0.dp)
來放到最寬ElevatedButton
ElevatedButton (
onClick = { /*TODO*/ }
) {
Text(text = "這是按鈕")
}
mutableStateOf
重組狀態remember
記住狀態.value
,例如isExpanded.value
@Composable
fun Greeting() {
val isExpanded = remember { mutableStateOf(false) }
}
ElevatedButton(
onClick = { isExpanded.value = !isExpanded.value }
) {
Text(
text = if (isExpanded.value) {
"被按下"
} else {
"顯示更多"
}
)
}